/*************************************************************************
 *                                                                       *
 * This file is part of the FreeMAPs distribution.  For full copyright   *
 * information, see COPYRIGHT and COPYING.LESSER.                        *
 *                                                                       *
 * Author:        sqbang                                                 *
 * Email:         sqbang@ustc.edu                                        *
 * Date:          2014.10.12                                             *
 * Description:   diffusion equation ensemble                            *
 *                                                                       *
 *************************************************************************/

namespace FreeMAPs
{

inline EquationEnsembleType
HeatConductionEquationEnsemble::get_equation_ensemble_type() const
{
    return EquationEnsembleType::HEAT_CONDUCTION;
}


inline int
HeatConductionEquationEnsemble::get_max_temporal_order() const
{
    if (d_is_steady) {
        return 0;
    } else {
        return 1;
    }
}


inline int
HeatConductionEquationEnsemble::get_num_of_stored_solutions() const
{
    if (d_is_steady) {
        return 1;
    } else {
        return 2;
    }
}


inline int
HeatConductionEquationEnsemble::get_ghost_width () const
{
    return 1;
}


inline bool
HeatConductionEquationEnsemble::is_steady() const
{
    return d_is_steady;
}


//inline const Variable*
//HeatConductionEquationEnsemble::get_var_temperature() const
//{
//    return d_var_temperature;
//}


inline bool
HeatConductionEquationEnsemble::use_effect_capacity() const
{
    return d_use_effect_capacity;
}


inline const std::string &
HeatConductionEquationEnsemble::get_coef_name_of_phase_change_latent_heat()const
{
    return d_coef_name_of_phase_change_latent_heat;
}


inline const std::string &
HeatConductionEquationEnsemble::get_coef_name_of_phase_change_temperature_inf()const
{
    return d_coef_name_of_phase_change_temperature_inf;
}


inline const std::string &
HeatConductionEquationEnsemble::get_coef_name_of_phase_change_temperature_sup()const
{
    return d_coef_name_of_phase_change_temperature_sup;
}


inline const bool
HeatConductionEquationEnsemble::has_decomposite_effection() const
{
    return d_has_decomposite_effection;
}


inline void
HeatConductionEquationEnsemble::set_has_decomposite_effection(
        const bool& has_decomposite_effection)
{
    d_has_decomposite_effection = has_decomposite_effection;
}

} // namespace FreeMAPs
